package com.xinyi.traditionmvvm.sources.local.impl;

import com.xinyi.traditionmvvm.sources.local.LocalApi;

import io.reactivex.Observable;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;

/**
 * @author 杨耿雷
 * @date 2024/9/26 11:55
 * @description 本地数据源实现
 */
public class LocalApiImpl implements LocalApi {

    @Override
    public Observable<String> getLocalData() {
        return Observable.create((ObservableOnSubscribe<String>) emitter -> {
            try {
                // 模拟延迟，代表从数据库加载数据
                Thread.sleep(1000);
                emitter.onNext("测试本地数据"); // 发送数据
                emitter.onComplete(); // 完成信号
            } catch (InterruptedException e) {
                emitter.onError(e); // 发送错误信号
            }
        }).subscribeOn(Schedulers.io()) // 在IO线程中执行
          .observeOn(AndroidSchedulers.mainThread()); // 在主线程中观察
    }
}
